// 防抖函数
function debounce(func: Function, wait: number) {
    let timeout: any;
    return function (...args: any[]) {
        if (timeout) clearTimeout(timeout);
        timeout = setTimeout(() => {
            func.apply(this, args);
        }, wait);
    };
}
// 节流函数
function throttle(func: Function, wait: number) {
    let timeout: any;
    let previous: number = 0;
    return function (...args: any[]) {
        const now = Date.now();
        if (now - previous > wait) {
            func.apply(this, args);
            previous = now;
        } else {
            clearTimeout(timeout);
            timeout = setTimeout(() => {
                func.apply(this, args);
            }, wait - (now - previous));
        }
    };
}

export { debounce, throttle };